<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>index09-Map和Set</title>
</head>
<body>
    <script type="text/javascript">

        // Map的使用
        // let map = new Map();
        // map.set('name', '张三');
        // map.set('age', 11);
        // map.set('已婚', false);
        // // key是基本类型
        // console.log(map.get('name')); // 张三
        // console.log(map.get('age'));// 11
        // console.log(map.get('已婚'));// false
        // // key是对象
        // let obj = {
        //     name: '哈哈哈'
        // };
        // map.set(obj, '对象');
        // console.log(map.get(obj));
        // // key可以是函数
        // let func = function(){};
        // // func——拿到函数本身
        // // func()——调用函数
        // map.set(func, '函数');
        // console.log(map.get(func));
        // // key可以是NaN——not a number——非数字
        // // let a = NaN;
        // // console.log(a);
        // // console.log(typeof(a)); // number
        // map.set(NaN, '非数字');
        // console.log(map.get(NaN));

        // Map的遍历（迭代/循环）
        let map2 = new Map();
        map2.set('name', '张三');
        map2.set('age', 11);
        map2.set('已婚', false);
        // // for...of循环
        // // for (let [key, value] of map2) {
        // //     console.log(`${key} = ${value}`);
        // // }
        // // for (let key of map2.keys()) {
        // //     console.log(key);
        // // }
        // // for (let value of map2.values()) {
        // //     console.log(value);
        // // }
        // map2.forEach((value, key) => {
        //     console.log(key, value);
        // });

        // 数组转Map
        let arr = [['k1', 'v1'], ['k2', 'v2']];
        let map3 = new Map(arr);
        // map3.forEach((value, key) => console.log(key, value));
        console.log(Array.from(map3));
        let map4 = new Map([...map3, ...map2]);
        console.log(map4);
        
    </script>
</body>
</html>